//package com.dc.service;
//
//
//import com.dc.constant.Constants;
//import com.dc.constant.ErrCode;
//import com.dc.constant.MessageConstant;
//import com.dc.dao.ConfigDao;
//import com.dc.dao.EnergyCompanyDao;
//import com.dc.dao.EnergyMonitorDao;
//import com.dc.entity.ConfigEntity;
//import com.dc.entity.EnergyCompanyEntity;
//import com.dc.entity.EnergyMonitorEntity;
//import com.dc.exception.ServiceException;
//import com.dc.model.EnergyMonitorBody;
//import com.dc.model.EnergyMonitorChildBody;
//import com.dc.model.EnergyMonitorSearchBody;
//import com.dc.service.dto.CMonitorChildDto;
//import com.dc.service.dto.CMonitorDto;
//import org.apache.commons.lang3.ObjectUtils;
//import org.springframework.data.domain.Example;
//import org.springframework.stereotype.Service;
//
//import javax.annotation.Resource;
//import java.util.*;
//
///**
// * 内部监控、碳核查 相关计算
// */
//@Service
//public class EnergyMonitorService {
//
//    @Resource
//    private EnergyCompanyDao energyCompanyDao;
//
//    @Resource
//    private EnergyMonitorDao energyMonitorDao;
//
//    @Resource
//    private ConfigDao configDao;
//
//
//
//    ////////////////////////////////////////////////////// 总物量  //////////////////////////////////////////////////////
//
//    /**
//     * 总物量对外接口
//     * @param energyMonitorBody
//     * @return
//     */
//    public List<EnergyMonitorEntity> getEnergyMonitor(EnergyMonitorSearchBody energyMonitorBody) {
//        String company = energyMonitorBody.getCompany();
//        if(Constants.NAME_COMPANY_ZIZHOU.equals(company)) {
//            return getZiZhouEnergyMonitor(energyMonitorBody);
//        } else if(Constants.NAME_COMPANY_YOU.equals(company) || Constants.NAME_COMPANY_ZHAO.equals(company)) {
//            return getCommonEnergyMonitor(energyMonitorBody);
//        } else {
//            throw new ServiceException(MessageConstant.ERR_COMPANY_NAME);
//        }
//    }
//
//    //////////////////////////////////////////////////  碳排放   ////////////////////////////////////////////////////////////////////
//
//    /**
//     * 碳排放对外接口
//     * @param energyMonitorBody
//     * @return
//     */
//    public CMonitorDto getCMonitor(EnergyMonitorSearchBody energyMonitorBody) {
//
//        String company = energyMonitorBody.getCompany();
//
//        if(Constants.NAME_COMPANY_ZIZHOU.equals(company)) {
//            return getZiZhouCMonitorDto(energyMonitorBody);
//        } else if(Constants.NAME_COMPANY_YOU.equals(company)
//                || Constants.NAME_COMPANY_ZHAO.equals(company)){
//            return getCommonCMonitor(energyMonitorBody);
//        } else {
//            throw new ServiceException(MessageConstant.ERR_COMPANY_NAME + company);
//        }
//    }
//
//    /**
//     * 计算 友联船厂  和  招商重工 的碳排
//     * @param energyMonitorBody
//     * @return
//     */
//    private CMonitorDto getCommonCMonitor(EnergyMonitorSearchBody energyMonitorBody) {
//
//        String company = energyMonitorBody.getCompany();
//        Integer type = energyMonitorBody.getType();
//        Integer year = energyMonitorBody.getYear();
//
//        EnergyCompanyEntity entity = new EnergyCompanyEntity(null, company, type, year);
//        List<EnergyCompanyEntity> one = energyCompanyDao.findAll(Example.of(entity));
//
//        if(ObjectUtils.isEmpty(one)) {          // 没有数据
//            return null;
//        }
//
//        EnergyCompanyEntity entity1 = one.get(0);
//        Long companyId = entity1.getId();
//
//        // 查询 EnergyMonitor 数据
//        List<EnergyMonitorEntity> monitorEntityList = energyMonitorDao.findByCompanyId(companyId);
//
//        CMonitorDto cMonitorDto = table2Form(energyMonitorBody, monitorEntityList);
//
//        return cMonitorDto;
//
//    }
//
//    private CMonitorDto getZiZhouCMonitorDto(EnergyMonitorSearchBody energyMonitorBody) {
//
//        String company = energyMonitorBody.getCompany();
//        Integer type = energyMonitorBody.getType();
//        Integer year = energyMonitorBody.getYear();
//
//        if(!Constants.NAME_COMPANY_ZIZHOU.equals(company)) {                // 此方法计算 孖洲岛 的碳排放，其他船厂不适合
//            throw new ServiceException(MessageConstant.ERR_COMPANY_ENERGY);
//        }
//
//        EnergyMonitorSearchBody zhou = new EnergyMonitorSearchBody(Constants.NAME_COMPANY_ZHAO,
//                energyMonitorBody.getType(), energyMonitorBody.getYear());
//        CMonitorDto zhouCMonitor = getCommonCMonitor(zhou);
//
//
//        EnergyMonitorSearchBody you = new EnergyMonitorSearchBody(Constants.NAME_COMPANY_YOU,
//                energyMonitorBody.getType(), energyMonitorBody.getYear());
//        CMonitorDto youCMonitor = getCommonCMonitor(you);
//
//        CMonitorDto zizhouMonitorDto = mergeCMonitorList(zhouCMonitor, youCMonitor);
//
//        // 孖洲岛 碳排放 内部监控 的时候，需要加入 碳排放量月度/年度指标  碳排放强度月度/年度指标  碳排放强度-深圳指南 三行,没有 factor
//        List<CMonitorChildDto> list = zizhouMonitorDto.getList();
//        // 1. 碳排放量月度/年度指标
//        CMonitorChildDto cFlagChildDto = new CMonitorChildDto();
//        cFlagChildDto.setName(Constants.NAME_C_FLAG_INCLUDE);
//
//        ConfigEntity cFlagConfig = configDao.findByYearAndName(year, Constants.NAME_C_FLAG_INCLUDE);
//        Double total = cFlagConfig.getValue();
//
//        int totalInt = total.intValue();
//        int begin = (int)(totalInt/12);
//        int end = begin + totalInt % 12;
//
//        // 1 到 11 月 为 begin , 12 月 为 end
//        for(int i = 0; i < 10; i++) {
//            cFlagChildDto.getMonths().add((double)begin);
//        }
//        cFlagChildDto.getMonths().add((double)end);
//        cFlagChildDto.setSum(total);
//
//        list.add(cFlagChildDto);
//
//        // 2. 碳排放强度月度/年度指标
//        CMonitorChildDto cPowerFlagChildDto = new CMonitorChildDto();
//        cPowerFlagChildDto.setName(Constants.NAME_C_POWER_FLAG_INCLUDE);
//        ConfigEntity cPowerFlagConfig = configDao.findByYearAndName(year, Constants.NAME_C_POWER_FLAG_INCLUDE);
//        Double power = cPowerFlagConfig.getValue();
//        // 1 到 12 月 的碳强指标相等
//        for(int i = 0; i < 11; i++) {
//            cPowerFlagChildDto.getMonths().add(power);
//        }
//        cPowerFlagChildDto.setSum(power);
//
//        list.add(cPowerFlagChildDto);
//
//        // 3. 碳排放强度-深圳指南
//        // 查询数据库 得到
//        CMonitorChildDto cChildDto = new CMonitorChildDto();
//        cChildDto.setName(Constants.NAME_C_POWER_INCLUDE);
//        List<Double> cChildMonths = cChildDto.getMonths();
//
//        EnergyCompanyEntity youEntity = new EnergyCompanyEntity(null, Constants.NAME_COMPANY_YOU, type, year);
//        List<EnergyCompanyEntity> youList = energyCompanyDao.findAll(Example.of(youEntity));
//        EnergyCompanyEntity youCompanyEntity = youList.get(0);
//
//        EnergyMonitorEntity youEnergy = energyMonitorDao.findByCompanyIdAndName(youCompanyEntity.getId(), Constants.NAME_C_POWER_INCLUDE);
//
//
//        EnergyCompanyEntity zhaoEntity = new EnergyCompanyEntity(null, Constants.NAME_COMPANY_ZHAO, type, year);
//        List<EnergyCompanyEntity> zhaoList = energyCompanyDao.findAll(Example.of(zhaoEntity));
//        EnergyCompanyEntity zhaoCompanyEntity = zhaoList.get(0);
//
//        EnergyMonitorEntity zhaoEnergy = energyMonitorDao.findByCompanyIdAndName(zhaoCompanyEntity.getId(), Constants.NAME_C_POWER_INCLUDE);
//
//
//        Double m1 = youEnergy.getMon1() + zhaoEnergy.getMon1();
//        cChildMonths.add(m1);
//        Double m2 = youEnergy.getMon2() + zhaoEnergy.getMon2();
//        cChildMonths.add(m2);
//        Double m3 = youEnergy.getMon3() + zhaoEnergy.getMon3();
//        cChildMonths.add(m3);
//        Double m4 = youEnergy.getMon4() + zhaoEnergy.getMon4();
//        cChildMonths.add(m4);
//        Double m5 = youEnergy.getMon5() + zhaoEnergy.getMon5();
//        cChildMonths.add(m5);
//        Double m6 = youEnergy.getMon6() + zhaoEnergy.getMon6();
//        cChildMonths.add(m6);
//        Double m7 = youEnergy.getMon7() + zhaoEnergy.getMon7();
//        cChildMonths.add(m7);
//        Double m8 = youEnergy.getMon8() + zhaoEnergy.getMon8();
//        cChildMonths.add(m8);
//        Double m9 = youEnergy.getMon9() + zhaoEnergy.getMon9();
//        cChildMonths.add(m9);
//        Double m10 = youEnergy.getMon10() + zhaoEnergy.getMon10();
//        cChildMonths.add(m10);
//        Double m11 = youEnergy.getMon11() + zhaoEnergy.getMon11();
//        cChildMonths.add(m11);
//        Double m12 = youEnergy.getMon12() + zhaoEnergy.getMon12();
//        cChildMonths.add(m12);
//
//        cChildDto.setSum(m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + m12);
//
//        list.add(cChildDto);
//
//        return zizhouMonitorDto;
//    }
//
//    CMonitorDto mergeCMonitorList(CMonitorDto zhouCM, CMonitorDto youCM) {
//
//        if(ObjectUtils.isEmpty(zhouCM) && ObjectUtils.isEmpty(youCM)) {
//            return null;
//        } else if(ObjectUtils.isEmpty(zhouCM) && !ObjectUtils.isEmpty(youCM)) {
//            return youCM;
//        } else if(!ObjectUtils.isEmpty(zhouCM) && ObjectUtils.isEmpty(youCM)) {
//            return zhouCM;
//        }
//
//        CMonitorDto result = new CMonitorDto();
//        result.setCompany(Constants.NAME_COMPANY_ZIZHOU);
//        result.setYear(zhouCM.getYear());
//        result.setType(zhouCM.getType());
//
//        List<CMonitorChildDto> list = result.getList();
//
//        List<CMonitorChildDto> zhouCMList = zhouCM.getList();
//        List<CMonitorChildDto> youCMList = youCM.getList();
//
//        for(CMonitorChildDto zhouDto: zhouCMList) {
//
//            Iterator<CMonitorChildDto> iterator = youCMList.iterator();
//
//            boolean flag = false;   //
//
//            while (iterator.hasNext()) {
//                CMonitorChildDto youDto = iterator.next();
//                String zhouName = zhouDto.getName();
//                String youName = youDto.getName();
//                if (zhouName.equals(youName)) {          // 相同的能源 开始相加
//                    flag = true;
//                    CMonitorChildDto entity = new CMonitorChildDto();
//                    entity.setName(youName);
//                    entity.setFactor(zhouDto.getFactor());
//                    List<Double> zizhouMonths = entity.getMonths();
//
//                    List<Double> zhouMonths = zhouDto.getMonths();
//                    List<Double> youMonths = youDto.getMonths();
//
//                    for (int i = 0; i < zhouMonths.size(); i++) {
//                        Double y = youMonths.get(i);
//                        Double z = zhouMonths.get(i);
//                        zizhouMonths.add(i, y + z);
//                    }
//                    list.add(entity);
//                }
//                iterator.remove();  // 操作一个就删除一个
//            }
//            if (flag) {
//                continue;
//            }
//            // flag = false 没有匹配，直接添加
//            list.add(zhouDto);
//        }
//
//        // 结束，如果youCMList还有元素，加进来
//        if(!youCMList.isEmpty()) {
//            list.addAll(youCMList);
//        }
//        return result;
//    }
//
//
//
//    /**
//     * 计算 友联船厂  和 招商重工 的碳排放
//     * @param energyMonitorBody
//     * @param monitorEntityList
//     * @return
//     */
//    private CMonitorDto table2Form(EnergyMonitorSearchBody energyMonitorBody, List<EnergyMonitorEntity> monitorEntityList) {
//
//        String company = energyMonitorBody.getCompany();
//        int year = energyMonitorBody.getYear();
//        int type = energyMonitorBody.getType();
//
//        if(Constants.NAME_COMPANY_ZIZHOU.equals(company)) {             // 此方法不计算 孖洲岛
//            throw new ServiceException(MessageConstant.ERR_DEFAULT + ErrCode.ERR_C_COMPANY);
//        }
//
//        CMonitorDto cMonitorDto = new CMonitorDto();
//        cMonitorDto.setCompany(company);
//        cMonitorDto.setType(type);
//        cMonitorDto.setYear(year);
//
//        if(ObjectUtils.isEmpty(monitorEntityList)) {    // 如果实物量为空，则返回null
//            return null;
//        }
//
//        List<CMonitorChildDto> list = cMonitorDto.getList();
//
//        for(EnergyMonitorEntity monitorEntity : monitorEntityList) {
//            String name = monitorEntity.getName();
//
//            if(Constants.NAME_C_MONITOR_EXCLUDE.equals(name)) {     // 需要排除
//                continue;
//            }
//            // 从配置表获取配置信息
//            ConfigEntity config = configDao.findByYearAndName(year, name);
//
//            CMonitorChildDto dto = new CMonitorChildDto();
//            dto.setName(name);
//            dto.setFactor(config.getValue());               // 配置表获取 factor
//            List<Double> months = dto.getMonths();
//
//            Double newMon1 = dto.getFactor() * monitorEntity.getMon1() * monitorEntity.getRatio();
//            months.add(newMon1);
//
//            Double newMon2 = dto.getFactor() * monitorEntity.getMon2() * monitorEntity.getRatio();
//            months.add(newMon2);
//
//            Double newMon3 = dto.getFactor() * monitorEntity.getMon3() * monitorEntity.getRatio();
//            months.add(newMon3);
//
//            Double newMon4 = dto.getFactor() * monitorEntity.getMon4() * monitorEntity.getRatio();
//            months.add(newMon4);
//
//            Double newMon5 = dto.getFactor() * monitorEntity.getMon5() * monitorEntity.getRatio();
//            months.add(newMon5);
//
//            Double newMon6 = dto.getFactor() * monitorEntity.getMon6() * monitorEntity.getRatio();
//            months.add(newMon6);
//
//            Double newMon7 = dto.getFactor() * monitorEntity.getMon7() * monitorEntity.getRatio();
//            months.add(newMon7);
//
//            Double newMon8 = dto.getFactor() * monitorEntity.getMon8() * monitorEntity.getRatio();
//            months.add(newMon8);
//
//            Double newMon9 = dto.getFactor() * monitorEntity.getMon9() * monitorEntity.getRatio();
//            months.add(newMon9);
//
//            Double newMon10 = dto.getFactor() * monitorEntity.getMon10() * monitorEntity.getRatio();
//            months.add(newMon10);
//
//            Double newMon11 = dto.getFactor() * monitorEntity.getMon11() * monitorEntity.getRatio();
//            months.add(newMon11);
//
//            Double newMon12 = dto.getFactor() * monitorEntity.getMon12() * monitorEntity.getRatio();
//            months.add(newMon12);
//
//            Double newSum = newMon1 + newMon2 + newMon3 + newMon4 + newMon5 + newMon6 + newMon7 + newMon8 + newMon9 + newMon10 + newMon11 + newMon12;
//            dto.setSum(newSum);
//
//            list.add(dto);
//        }
//
//        // 添加 碳排放量-深圳指南 行
//        CMonitorChildDto dto = new CMonitorChildDto();
//        dto.setName(Constants.NAME_C_SHENZHEN_INCLUDE);
//        for(CMonitorChildDto monitorEntity : list) {
//
//            List<Double> dtoMonths = dto.getMonths();
//            List<Double> monitorMons = monitorEntity.getMonths();
//
//            for(int i = 0; i< monitorMons.size(); i++) {
//                Double v = monitorMons.get(i);
//                dtoMonths.set(i, dtoMonths.get(i) + v);
//            }
//
//            dto.setSum(monitorEntity.getSum() + dto.getSum());
//        }
//
//        list.add(dto);
//
//        // 如果是 孖洲岛 的 内部监控 添加单独的行  碳排放量月度/年度指标 | 碳排放强度(深圳指南）（t/万元） |  碳排放强度月度/年度指标（t/万元）
//
//
//        return cMonitorDto;
//    }
//
//
//    ///////////////////////////////////////////////////////// 总物质 转换 /////////////////////////////////////////////////////
//    /**
//     * 总物质
//     * 根据查询到的 EnergyMonitorEntity 结果，构造返回数据
//     * @param list
//     * @return
//     */
//    public List<EnergyMonitorChildBody> table2Form(List<EnergyMonitorEntity> list) {
//
//        List<EnergyMonitorChildBody> result = new ArrayList<>();
//
//        for(EnergyMonitorEntity m : list) {
//            EnergyMonitorChildBody body = new EnergyMonitorChildBody();
//            body.setId(m.getId());
//            body.setName(m.getName());
//            body.setUnit(m.getUnit());
//            body.setFactor(m.getFactor());
//            body.setRatio(m.getRatio());
//            List<Double> mons = new ArrayList<>();
//            mons.add(m.getMon1());
//            mons.add(m.getMon2());
//            mons.add(m.getMon3());
//            mons.add(m.getMon4());
//            mons.add(m.getMon5());
//            mons.add(m.getMon6());
//            mons.add(m.getMon7());
//            mons.add(m.getMon8());
//            mons.add(m.getMon9());
//            mons.add(m.getMon10());
//            mons.add(m.getMon11());
//            mons.add(m.getMon12());
//
//            body.setMonths(mons);
//
//            result.add(body);
//        }
//
//        return result;
//    }
//
//    /**
//     * 总物质
//     * insert 里面用
//     * @param companyId , energyMonitorBody
//     * @param list
//     * @return
//     */
//    public List<EnergyMonitorEntity> form2Table(Long companyId, EnergyMonitorBody energyMonitorBody, List<EnergyMonitorChildBody> list) {
//
//        Integer year = energyMonitorBody.getYear();
//
//        List<EnergyMonitorEntity> result = new ArrayList<>();
//
//        if(ObjectUtils.isEmpty(list)) {
//            return result;
//        }
//
//        // 不等于 null
//        for (EnergyMonitorChildBody body : list) {
//            EnergyMonitorEntity energyMonitorEntity = new EnergyMonitorEntity();
//            Long mapId = body.getId();
//            String name = body.getName();
//            String unit = body.getUnit();
//            ConfigEntity config = configDao.findByYearAndName(year, name);
//
//            Double factor = ObjectUtils.isEmpty(config) ? 0. : config.getValue();
//            Double ratio = ObjectUtils.isEmpty(body.getRatio()) ? 0.0 : body.getRatio();
//            List<Double> months = ObjectUtils.isEmpty(body.getMonths()) ? new ArrayList<>() : body.getMonths();
//
//            energyMonitorEntity.setCompanyId(companyId);
//            energyMonitorEntity.setId(ObjectUtils.isEmpty(mapId) ? null : Long.valueOf(mapId));
//            energyMonitorEntity.setName(name);
//            energyMonitorEntity.setUnit(unit);
//            energyMonitorEntity.setFactor(factor);
//            energyMonitorEntity.setRatio(ratio);
//
//            energyMonitorEntity.setMon1(months.get(0));
//            energyMonitorEntity.setMon2(months.get(1));
//            energyMonitorEntity.setMon3(months.get(2));
//            energyMonitorEntity.setMon4(months.get(3));
//            energyMonitorEntity.setMon5(months.get(4));
//            energyMonitorEntity.setMon6(months.get(5));
//            energyMonitorEntity.setMon7(months.get(6));
//            energyMonitorEntity.setMon8(months.get(7));
//            energyMonitorEntity.setMon9(months.get(8));
//            energyMonitorEntity.setMon10(months.get(9));
//            energyMonitorEntity.setMon11(months.get(10));
//            energyMonitorEntity.setMon12(months.get(11));
//
//            result.add(energyMonitorEntity);
//        }
//        return result;
//    }
//
//
//    //////////////////////////////////////// 内部方法 ////////////////////////////////////////////////////////////////
//
//    /**
//     * 计算 孖洲岛 的 总物量 信息
//     */
//    private List<EnergyMonitorEntity> getZiZhouEnergyMonitor(EnergyMonitorSearchBody energyMonitorBody) {
//
//        String company = energyMonitorBody.getCompany();
//
//        if(!Constants.NAME_COMPANY_ZIZHOU.equals(company)) {                // 此方法计算 孖洲岛 的总物量，其他船厂不适合
//            throw new ServiceException(MessageConstant.ERR_COMPANY_ENERGY);
//        }
//
//        EnergyMonitorSearchBody zhou = new EnergyMonitorSearchBody(Constants.NAME_COMPANY_ZHAO,
//                energyMonitorBody.getType(), energyMonitorBody.getYear());
//        List<EnergyMonitorEntity> zhouEnergyMonitor = getCommonEnergyMonitor(zhou);
//
//        EnergyMonitorSearchBody you = new EnergyMonitorSearchBody(Constants.NAME_COMPANY_YOU,
//                energyMonitorBody.getType(), energyMonitorBody.getYear());
//        List<EnergyMonitorEntity> youEnergyMonitor = getCommonEnergyMonitor(you);
//
//
//        return mergeEnergyMonitorList(zhouEnergyMonitor, youEnergyMonitor);
//
//    }
//
//    /**
//     * 计算 友联船厂  招商重工  的 总物量
//     * @param energyMonitorBody
//     * @return
//     */
//    private List<EnergyMonitorEntity> getCommonEnergyMonitor(EnergyMonitorSearchBody energyMonitorBody) {
//
//        String company = energyMonitorBody.getCompany();
//        Integer type = energyMonitorBody.getType();
//        Integer year = energyMonitorBody.getYear();
//
//        EnergyCompanyEntity entity = new EnergyCompanyEntity(null, company, type, year);
//        List<EnergyCompanyEntity> one = energyCompanyDao.findAll(Example.of(entity));
//
//        if(ObjectUtils.isEmpty(one)) {          // 没有数据
//            return new ArrayList<>();
//        }
//
//        EnergyCompanyEntity entity1 = one.get(0);
//        Long companyId = entity1.getId();
//
//        // 查询 EnergyMonitor 数据
//        List<EnergyMonitorEntity> monitorEntityList = energyMonitorDao.findByCompanyId(companyId);
//
//        return monitorEntityList;
//    }
//
//
//    /**
//     * 计算两个船厂的物量和
//     * @param zhouEnergyMonitors
//     * @param youEnergyMonitors
//     */
//    private List<EnergyMonitorEntity> mergeEnergyMonitorList(List<EnergyMonitorEntity> zhouEnergyMonitors, List<EnergyMonitorEntity> youEnergyMonitors) {
//
//        if(ObjectUtils.isEmpty(zhouEnergyMonitors) && ObjectUtils.isEmpty(youEnergyMonitors)) {
//            return new ArrayList<>();
//        } else if(ObjectUtils.isEmpty(zhouEnergyMonitors) && !ObjectUtils.isEmpty(youEnergyMonitors)) {
//            return youEnergyMonitors;
//        } else if(!ObjectUtils.isEmpty(zhouEnergyMonitors) && ObjectUtils.isEmpty(youEnergyMonitors)) {
//            return zhouEnergyMonitors;
//        }
//
//        List<EnergyMonitorEntity> result = new ArrayList<>();
//
//        for(EnergyMonitorEntity zhouEn : zhouEnergyMonitors) {
//
//            Iterator<EnergyMonitorEntity> iterator = youEnergyMonitors.iterator();
//
//            boolean flag = false;
//
//            while (iterator.hasNext()) {
//
//                EnergyMonitorEntity youEn = iterator.next();
//
//                String zhouName = zhouEn.getName();
//                String youName = youEn.getName();
//                if(zhouName.equals(youName)) {          // 相同的能源 开始相加
//
//                    flag = true;
//
//                    EnergyMonitorEntity entity = new EnergyMonitorEntity();
//                    entity.setName(youName);
//                    entity.setUnit(youEn.getUnit());
//                    entity.setFactor(youEn.getFactor());
//                    entity.setRatio(youEn.getRatio());
//                    entity.setMon1(youEn.getMon1() + zhouEn.getMon1());
//                    entity.setMon2(youEn.getMon2() + zhouEn.getMon2());
//                    entity.setMon3(youEn.getMon3() + zhouEn.getMon3());
//                    entity.setMon4(youEn.getMon4() + zhouEn.getMon4());
//                    entity.setMon5(youEn.getMon5() + zhouEn.getMon5());
//                    entity.setMon6(youEn.getMon6() + zhouEn.getMon6());
//                    entity.setMon7(youEn.getMon7() + zhouEn.getMon7());
//                    entity.setMon8(youEn.getMon8() + zhouEn.getMon8());
//                    entity.setMon9(youEn.getMon9() + zhouEn.getMon9());
//                    entity.setMon10(youEn.getMon10() + zhouEn.getMon10());
//                    entity.setMon11(youEn.getMon11() + zhouEn.getMon11());
//                    entity.setMon12(youEn.getMon12() + zhouEn.getMon12());
//
//                    result.add(entity);
//
//                    iterator.remove();  // 操作一个就删除一个
//                }
//                if (flag) {
//                    continue;
//                }
//                // flag = false 没有匹配，直接添加
//                result.add(zhouEn);
//            }
//        }
//        // 结束，如果youCMList还有元素，加进来
//        if(!youEnergyMonitors.isEmpty()) {
//            result.addAll(youEnergyMonitors);
//        }
//
//        return result;
//    }
//}
